var increasingTriplet = function (nums) {
let min = nums[0];
let mid = Infinity;
for (let i = 1; i < nums.length; i++) {
if (min > nums[i]) {
min = nums[i];
} else if (mid > nums[i] && nums[i] > min) {
mid = nums[i];
} else if (nums[i] > min && nums[i] > mid) {
return true;
}
}
return false;
};
用 花花酱 LeetCode 334. Increasing Triplet Subsequence 提供的圖片來看會比較清楚。
遍歷陣列一次,然後用兩個變數儲存找到的最小值和次小值,當找到比它們大的數的時候,就代表能找到 triple of indices。
時間複雜度: O(n)
空間複雜度: O(1)